/*
 * Created on May 31, 2004
 *
 * Vectrics Inc.  GNU Public License.
 */
package org.vectrics.hibernate;

import java.util.Date;
import java.util.List;

import org.hibernate.Query;


/**
 * @author mmoore
 */
public interface Selector extends SelectorElement {
	public static final short CONJUNTION_OR = 0;
	public static final short CONJUNTION_AND = 1;
	
	public void setConjuntion(short value);
	public Selector addChildSelector(short conjunction);
	public Selector addChildSelector(String name, short conjunction);
		
    public void addColumnToColumn(String column1, String operator, String column2);
	public void addCondition(String condition);
	public void addParameterCondition(String field, String operator, Long parameter);
	public void addParameterCondition(String field, String operator, Date date);
	public void addParameterCondition(String field, Boolean value);
	public void addParameterCondition(String field, boolean value);
	public void addParameterCondition(String field, String operator, String parameter);
	
	public int getNextParameterId();
		
	public void addParametersToQuery(Query query);
	public String getStatement();

	public List getElements();
	public String getIdentifier();
}
